<?php
  class ZipFileService{
		/* creates a compressed zip file */
		function createZipByFilename($files = array(),$destination = '',$overwrite = false) {
			//if the zip file already exists and overwrite is false, return false
			if(file_exists($destination) && !$overwrite) { return false; }
			//vars
			$valid_files = array();
			//if files were passed in...
			if(is_array($files)) {
				//cycle through each file
				foreach($files as $file) {
					//make sure the file exists
					if(file_exists($file)) {
						$valid_files[] = $file;
					}
				}
			}
			//if we have good files...
			if(count($valid_files)) {
				//create the archive
				$zip = new ZipArchive();
				if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
					return false;
				}
				//add the files
				foreach($valid_files as $file) {
					$zip->addFile($file,$file);
				}
				//debug
				//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
				
				//close the zip -- done!
				$zip->close();
				
				//check to make sure the file exists
				return file_exists($destination);
			}
			else
			{
				return false;
			}
		}
		
		function parseDirectory($rootPath, $seperator="/"){
			$fileArray=array();
			$handle = opendir($rootPath);
			while( ($file = @readdir($handle))!==false) {
				if($file !='.' && $file !='..'){
					if (is_dir($rootPath.$seperator.$file)){
						$array=$this->parseDirectory($rootPath.$seperator.$file);
						$fileArray=array_merge($array,$fileArray);
					}
					else {
						$fileArray[]=$rootPath.$seperator.$file;
					}
				}
			}		
			return $fileArray;
		}	
		
		function checkFileSize($filename) {
			
				$size = filesize($filename);
				
				return $size;
				/*
				//Format file size unit
				$units = array(' B', ' KB', ' MB', ' GB', ' TB');
				for ($i = 0; $size >= 1024 && $i < 4; $i++) $size /= 1024;
				return round($size, 2).$units[$i];
				*/
		}		
		
			
  }
?>